#include <iostream>
using namespace std;

int main() {
    // 1. 等腰三角形 正
//    int space, rows;
//    cout <<"输入行数: ";
//    cin >> rows;
//    for(int i = 1, k = 0; i <= rows; ++i, k = 0) {
//        for(space = 1; space <= rows-i; ++space) {
//            cout <<"  ";
//        }
//        while(k != 2*i-1) {
//            cout << "* ";
//            ++k;
//        }
//        cout << endl;
//    }
//    // 1. 等腰三角形 倒
//    for(int i = rows; i >= 1; --i) {
//        for(space = 0; space < rows-i; ++space)
//            cout << "  ";
//        for(int j = i; j <= 2*i-1; ++j)
//            cout << "* ";
//        for(int j = 0; j < i-1; ++j)
//            cout << "* ";
//        cout << endl;
//    }

//    // 2. 等腰三角形数字版
//    int rows, count = 0, count1 = 0, k = 0;
//    cout << "输入行数: ";
//    cin >> rows;
//    for(int i = 1; i <= rows; ++i) {
//        for(int space = 1; space <= rows-i; ++space) {
//            cout << "  ";
//            ++count;
//        }
//        while(k != 2*i-1) {
//            if (count <= rows-1) {
//                cout << i+k << " ";
//                ++count;
//            }
//            else {
//                ++count1;
//                cout << i+k-2*count1 << " ";
//            }
//            ++k;
//        }
//        count1 = count = k = 0;
//        cout << endl;
//    }

//    // 杨辉三角形
//    int rows, coef = 1;
//    cout << "Enter number of rows: ";
//    cin >> rows;
//    for(int i = 0; i < rows; i++) {
//        for(int space = 1; space <= rows-i; space++)
//            cout <<"  ";
//        for(int j = 0; j <= i; j++) {
//            if (j == 0 || i == 0)
//                coef = 1;
//            else
//                coef = coef*(i-j+1)/j;
//            cout << coef << "   ";
//        }
//        cout << endl;
//    }
//
//    return 0;

    //杨辉三角形第二种方式
    int n,r,c,m,j=0;
    cout<<"请输入行数（小于14）：";
    cin>>m;
    while (m>=14) {
        if (j>=2) {
            cout<<"你的错误输入已达3次，你无权再输入！"<<endl;
            return 0;
        }
        cout<<"你输入的行数超出范围，请重新输入！"<<endl;
        cout<<"请输入行数（小于14）：";
        cin>>m;
        j++;
    }

    for (n=0;n<=m-1;n++) {
        for(r=1;r<15-n;r++)
            cout<<"  ";  //2
        c=1;
        cout<<c<<"   ";  //3
        for(r=1;r<=n;r++) {
            c=c*(n-r+1)/r;
            if (c<100)
                if(c<10)
                    cout<<c<<"   ";  //3
                else
                    cout<<c<<"  ";  //2
            else
                cout<<c<<" ";  //1
        }
        cout<<endl;
    }
    return 0;

}